package com.wandian.cqcsk.data;

import com.google.gson.JsonObject;
import com.mylib.libcore.bean.BaseBean;

import java.util.Map;

import io.reactivex.Observable;
import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.QueryMap;


public interface BaseAppApi {

    /**
     * 获取音乐签名
     * @param map
     * @param
     * @return
     */
    @GET("/index/index/initialConfig")
    Call<Object> gateMusicSign(@QueryMap Map<String, String> map);

    /**
     * 阅读奖励
     * @param
     * @param
     * @return
     */
    @POST("/uApp/gold/addGold")
    Observable<BaseBean<Object>> readMoney(@Body JsonObject jsonObject);

    /**
     * 用户金币记录
     * @param
     * @param
     * @return
     */
    @POST("/uApp/gold/goldList")
    Observable<BaseBean<Object>> goldHistoryList(@Body JsonObject jsonObject);

    /**
     * /uApp/top/emigratedTop
     * 闯关榜
     * @param
     * @param
     * @return
     */
    @POST("/uApp/top/emigratedTop")
    Observable<BaseBean<Object>> emigratedTop(@Body JsonObject jsonObject);

    /**
     *等级榜
     * @param
     * @param
     * @return
     */
    @POST("/uApp/top/experienceTop")
    Observable<BaseBean<Object>> experienceTop(@Body JsonObject jsonObject);

    /**
     * 战力榜
     * @param
     * @param
     * @return
     */
    @POST("/uApp/top/fightTop")
    Observable<BaseBean<Object>> fightTop(@Body JsonObject jsonObject);

    /**
     * 活跃榜
     * @param
     * @param
     * @return
     */
    @POST("/uApp/top/otTop")
    Observable<BaseBean<Object>> otTop(@Body JsonObject jsonObject);


    /**
     * 获取app版本，系统设置
     * @param
     * @param
     * @return
     */
    @POST("/uApp/apk/getVersion")
    Observable<BaseBean<Object>> getVersion(@Body JsonObject jsonObject);

    /**
     * 获取用户信息
     * @param
     * @param
     * @return
     */
    @POST("/uApp/user/getUserInfo")
    Observable<BaseBean<Object>> getUserInfo(@Body JsonObject jsonObject);

    /**
     * 签到
     * @param
     * @param
     * @return
     */
    @POST("/uApp/user/sign")
    Observable<BaseBean<Object>> todaySign(@Body JsonObject jsonObject);

    /**
     * 签到记录
     * @param
     * @param
     * @return
     */
    @POST("/uApp/user/signList")
    Observable<BaseBean<Object>> signList(@Body JsonObject jsonObject);


    /**
     * 获取提现记录
     * @param
     * @param
     * @return
     */
    @POST("/uApp/wallet/withdrawalList")
    Observable<BaseBean<Object>> withdrawalList(@Body JsonObject jsonObject);

    /**
     * /uApp/task/myInvitation
     * 我的推荐/完成进度
     * @param
     * @param
     * @return
     */
    @POST("/uApp/task/myInvitation")
    Observable<BaseBean<Object>> myInvitation(@Body JsonObject jsonObject);

    /**
     * 任务奖励
     * @param
     * @param
     * @return
     */
    @POST("/uApp/gold/addGold")
    Observable<BaseBean<Object>> taskMoney(@Body JsonObject jsonObject);

    /**
     * 兑换配置
     * @param
     * @param
     * @return
     */
    @POST("/uApp/wallet/amountRatio")
    Observable<BaseBean<Object>> amountRatio(@Body JsonObject jsonObject);

    /**
     * 申请提现
     * @param
     * @param
     * @return
     */
    @POST("/uApp/wallet/applyWithdrawal")
    Observable<BaseBean<Object>> applyWithdrawal(@Body JsonObject jsonObject);


    /**
     * 获取用户钱包信息
     * @param
     * @param
     * @return
     */
    @POST("/uApp/wallet/myWallet")
    Observable<BaseBean<Object>> getUserWallet(@Body JsonObject jsonObject);


    /**
     *填写邀请码
     * @param
     * @param
     * @return
     */
    @POST("/uApp/task/setInvitationCode")
    Observable<BaseBean<Object>> editInvite(@Body JsonObject jsonObject);

    /**
     * 获取用户每日配置
     * @param
     * @param
     * @return
     */
    @POST("/uApp/user/getTaskOpNum")
    Observable<BaseBean<Object>> getEveryDayConfig(@Body JsonObject jsonObject);


    /**
     * 意见反馈
     * @param
     * @param
     * @return
     */
    @POST("/uApp/feedback/addFeedback")
    Observable<BaseBean<Object>> sendSuggest(@Body JsonObject jsonObject);


    /**
     * 意见反馈记录
     * @param
     * @param
     * @return
     */
    @POST("/uApp/feedback/myFeedbackList")
    Observable<BaseBean<Object>> suggestList(@Body JsonObject jsonObject);

    /**
     * 获取oosToken
     * @param
     * @param
     * @return
     */
    @POST("/uApp/oss/getUpToken")
    Observable<BaseBean<Object>> getOOSToken(@Body JsonObject jsonObject);

}
